Although there is no consensus on a definition of "artificial intelligence", it is sometimes generally defined as a computer programming style in which programs operate on data according to rules to solve problems. Artificial intelligence involves the use of symbolic, as opposed to numeric, representations of data. Using computer processing to relate these symbolic representations is referred to as "symbolic processing", and permits computers to represent real world objects in the form of symbols and to then develop associations between those symbols.
A feature common to artificial intelligence programs is that they all involve knowledge, and must represent knowledge in a manner that can be used by a computer. Specific applications of artificial intelligence, including those using symbolic processing, are associated with knowledge bases. A knowledge base for a particular application includes facts about the application and rules for applying those facts, i.e., declarative and procedural knowledge relevant to the domain. The "facts" of a knowledge base may include objects, events, and relationships.
To develop useful knowledge bases, the computer industry has recognized a need to combine efforts of both software engineers and experts in the particular domain. Generally, the software engineer develops the expert system, and the domain expert provides information for the knowledge base. However, even this approach to creating knowledge bases ignores the expertise of a user, who may have his or her own skills to add to the decision making process. Thus, there is a need for a knowledge-based system that permits the skills of the user to contribute to the knowledge base.
One application of artificial intelligence is decision support for human users, especially in the form of modeling a particular real world or hypothetical operation. The operation's domain includes all objects, events, and relationships that affect behavior within the operation. Yet, many existing systems are relatively inflexible, and rely on rule-based inference engines. These systems do not compare favorably to the ability of human intelligence to make decisions on what rules apply and how to apply them. There is a need for improved methods for applying rules.